Fixed leakage of all parts of the chat heirarchy including the webview when closing...
[adiumx.git] / Plugins / Dual Window Interface / AIMessageViewController.h
blob0df202430a87c5db7d84cf25a94c7d64640246d5
1 /*
2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
4 *
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11 * Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 #import "ESChatUserListController.h"
18 #import "AISideSplitView.h"
19 #import "KNShelfSplitView.h"
20 #import <Adium/AIInterfaceControllerProtocol.h>
22 @class AIAccount, AIListContact, AIListObject, AIAccountSelectionView, AIMessageTabSplitView, AIMessageEntryTextView;
23 @class AIMessageWindowController;
25 @interface AIMessageViewController : AIObject <AIListControllerDelegate> {
26 IBOutlet NSView *view_contents;
28 //Split views
29 IBOutlet AIMessageTabSplitView *splitView_textEntryHorizontal;
32 //Message Display
33 NSView *controllerView_messages;
34 IBOutlet NSScrollView *scrollView_messages;
35 IBOutlet NSView *customView_messages;
37 //User List
38 IBOutlet AIAutoScrollView *scrollView_userList;
39 BOOL retainingScrollViewUserList;
40 IBOutlet AIListOutlineView *userListView;
41 ESChatUserListController *userListController;
43 //Text entry
44 IBOutlet NSScrollView *scrollView_outgoing;
45 IBOutlet AIMessageEntryTextView *textView_outgoing;
47 IBOutlet NSView *nibrootView_messageView;
48 IBOutlet NSView *nibrootView_shelfVew;
49 IBOutlet NSView *nibrootView_userList;
52 NSObject<AIMessageDisplayController> *messageDisplayController;
53 AIAccountSelectionView *view_accountSelection;
54 AIMessageWindowController *messageWindowController;
57 //widgetstrip
58 IBOutlet KNShelfSplitView *shelfView;
60 //menuitem
61 NSMenuItem * showHide;
63 AIChat *chat;
64 BOOL suppressSendLaterPrompt;
65 int entryMinHeight;
66 int userListMinWidth;
69 + (AIMessageViewController *)messageDisplayControllerForChat:(AIChat *)inChat;
70 - (void)messageViewWillLeaveWindowController:(AIMessageWindowController *)inWindowController;
71 - (void)messageViewAddedToWindowController:(AIMessageWindowController *)inWindowController;
72 - (AIChat *)chat;
74 - (AIListContact *)listObject;
75 - (AIListObject *)preferredListObject;
77 //Message Display
78 - (NSView *)view;
79 - (void)adiumPrint:(id)sender;
81 //Message Entry
82 - (IBAction)sendMessage:(id)sender;
83 - (IBAction)didSendMessage:(id)sender;
84 - (IBAction)sendMessageLater:(id)sender;
86 //Account Selection
87 - (void)redisplaySourceAndDestinationSelector:(NSNotification *)notification;
88 - (void)setAccountSelectionMenuVisibleIfNeeded:(BOOL)makeVisible;
90 //Text Entry
91 - (void)makeTextEntryViewFirstResponder;
92 - (void)clearTextEntryView;
93 - (void)addToTextEntryView:(NSAttributedString *)inString;
94 - (void)addDraggedDataToTextEntryView:(id <NSDraggingInfo>)draggingInfo;
96 //User List
97 - (void)setUserListVisible:(BOOL)inVisible;
98 - (BOOL)userListVisible;
100 //splitview
101 -(void)setupShelfView;
102 // -(void)collapseShelfView;
103 -(void)toggleUserlist:(id)sender;
105 - (void)tabViewDidChangeVisibility;
107 @end